from django.contrib.auth.decorators import login_required
from django.urls import path, re_path

from apps.users import views

app_name = 'users'

urlpatterns = [

    # 用户注册: reverse(users:register) == '/register/'
    path('register/', views.RegisterView.as_view(), name='register'),

    # 判断用户名是否重复注册
    re_path('^usernames/(?P<username>[a-zA-Z0-9_-]{5,32})/count/$', views.UsernameCountView.as_view(),
            name='usernames'),

    # 判断用户名是否重复注册
    re_path('^mobiles/(?P<mobile>1[3-9][0-9]{9})/count/$', views.MobileCountView.as_view(), name='mobiles'),

    # 用户登录
    re_path('^login/$', views.LoginView.as_view(), name='login'),

    # 用户退出登录
    re_path('^logout/$', views.LogoutView.as_view(), name='logout'),

    # 用户中心
    re_path('^info/$', login_required(views.UserInfoView.as_view()), name='info'),

    # 添加邮箱
    re_path('^emails/$', views.EmailView.as_view()),

    # 验证邮箱
    re_path('^emails/verification/$', views.VerifyEmailView.as_view()),

    # 展示用户地址
    re_path('^addresses/$', views.AddressView.as_view(), name='address'),

    # 新增用户地址
    re_path('^addresses/create/$', views.CreateAddressView.as_view()),

    # 修改/删除用户地址
    re_path('^addresses/(?P<address_id>\d+)/$', views.UpdateDestroyAddressView.as_view()),

    # 设置默认地址
    re_path('^addresses/(?P<address_id>\d+)/default/$', views.DefaultAddressView.as_view()),

    # 修改地址标题
    re_path('^addresses/(?P<address_id>\d+)/title/$', views.DefaultAddressView.as_view()),

    # 修改地址标题
    re_path('^pass/$', views.ChangePasswordView.as_view(), name='pass'),

    # 用户商品浏览记录
    re_path('browse_histories', views.UserBrowseHistory.as_view()),

]
